<?php
//栏目模型类
	Class CategoryModel extends Model{
		public $table='category';//栏目表
		//自动验证
		public $validate=array(
			array('catname','nonull','栏目名不能为空',2,3),
			array('catname','checkCatName','栏目已经存在',2,3)
		);
		//自动检验栏目是否存在
		public function checkCatName($name,$value,$msg,$arg){
			$data=M('category')->where("catname='$value'")->find();
			// Q('cid') == $_GET['cid']
			if($cid=Q('cid')){//编辑栏目
				if($data){
					return $data['cid']!=$cid?$msg:true;
				}else{
					return true; 
				}
				
			}else{//添加栏目
				return $data?$msg:true;
			}
		}
		//获得栏目数据
		public function getList(){
			//获得所有的栏目数据
			$data=$this->all();
			//建立树状栏目(父子级关系)
			return Data::tree($data,'catname','cid','pid');
		}
		//添加栏目
		public function addcategory(){
			if($this->create()){
				if($this->add()){
					return true;
				}else{
					$this->error='添加失败';
				}
			}
		}
		//添加子栏目
		public function addchildcategory(){
			if($this->create()){
				if($this->add()){
					return true;
				}else{
					$this->error='添加子目录失败';
				}
			}
		}
		//编辑栏目
		public function editcategory(){
			if($this->create()){
				//执行更新数据
				if($this->where("cid={$_POST['cid']}")->save()){
					return true;
				}else{
					$this->error='编辑栏目失败';
				}
			}
		}
		//删除栏目
		public function deletecategory($cid){
			//获得所有的子栏目列表
			$categorychild=Data::channelList($this->all(),$cid);
			//获得所有子栏目的cid
			$allcid=array_keys($categorychild);
			//将当前栏目cid压入
			$allcid[]=$cid;
			//删除cid=$cid的文章
			$map['cid']=array('IN',$allcid);
			M('content')->where($map)->del();
			//删除栏目
			return $this->where($map)->del();	

		}

	}




?>